package com.yk.silence.rxretrofitmvp.base.mvp;

import com.yk.silence.rxretrofitmvp.base.model.BaseModel;
import com.yk.silence.rxretrofitmvp.base.presenter.BasePresenter;
import com.yk.silence.rxretrofitmvp.base.view.BaseView;

/**
 * BaseMvp是用来创建Model、View和Presenter层的，我们的MVP框架只去调用它们，具体的实现由真正的View层来做
 *
 * @param <V>View层
 * @param <M>Model层
 * @param <P>Presenter层
 */
public interface BaseMVP<V extends BaseView, M extends BaseModel, P extends BasePresenter> {
    /**
     * 创建Model层
     *
     * @return
     */
    M createModel();

    /**
     * 创建View层
     *
     * @return
     */
    V createView();

    /**
     * 创建Presenter层
     *
     * @return
     */
    P createPresenter();


}
